# 编译器和选项
CC = gcc
CFLAGS = -Wall -Wextra -std=c99

# 构建目录
BUILD_DIR = output
TARGET = main.exe
OUTBIN = $(BUILD_DIR)/$(TARGET)

# 源文件和目标文件
SOURCES = main.c lib/cJSON/cJSON.c
OBJECTS = $(addprefix $(BUILD_DIR)/, $(notdir $(SOURCES:.c=.o)))

# 默认目标
all: $(BUILD_DIR) $(OUTBIN)

# 创建构建目录
$(BUILD_DIR):
	@mkdir $(BUILD_DIR)

# 链接目标
$(OUTBIN): $(OBJECTS)
	$(CC) $(CFLAGS) $^ -o $@

# 编译每个 .c 文件为 .o（放入 outbin）
$(BUILD_DIR)/%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD_DIR)/%.o: lib/cJSON/%.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理构建文件
clean:
	-@del /Q $(subst /,\,$(BUILD_DIR)\*.o $(TARGET)) 2>nul
